package com.ruoyi.amuse.likes.service.impl;

import com.ruoyi.amuse.likes.domain.PostLikes;
import com.ruoyi.amuse.likes.mapper.PostLikesMapper;
import com.ruoyi.amuse.likes.service.IPostLikesService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 点赞管理Service业务层处理
 * 
 * @author juwujie
 * @date 2024-07-19
 */
@Service
public class PostLikesServiceImpl implements IPostLikesService 
{
    @Autowired
    private PostLikesMapper postLikesMapper;

    /**
     * 查询点赞管理
     * 
     * @param likeId 点赞管理主键
     * @return 点赞管理
     */
    @Override
    public PostLikes selectPostLikesByLikeId(Long likeId)
    {
        return postLikesMapper.selectPostLikesByLikeId(likeId);
    }

    /**
     * 查询点赞管理列表
     * 
     * @param postLikes 点赞管理
     * @return 点赞管理
     */
    @Override
    public List<PostLikes> selectPostLikesList(PostLikes postLikes)
    {
        return postLikesMapper.selectPostLikesList(postLikes);
    }

    /**
     * 新增点赞管理
     * 
     * @param postLikes 点赞管理
     * @return 结果
     */
    @Override
    public int insertPostLikes(PostLikes postLikes)
    {

        /*
        *对传过来的status进行判断，如果为1则添加，为0则删除点赞
        * */
//        检查用户是否已经点赞，避免重复对一条帖子点赞
        List<PostLikes> postLikes1 = selectPostLikesList(postLikes);
        if (postLikes1.size()!=0){
            return 0;
        }
        if (postLikes.getStatus().equals("1")){
            return postLikesMapper.insertPostLikes(postLikes);
        }else if (postLikes.getStatus().equals("0")){
            return postLikesMapper.deletePostLikesByLikeId(postLikes.getPostId(), postLikes.getUserAccount());
        }
        return 0;

    }

    /**
     * 修改点赞管理
     * 
     * @param postLikes 点赞管理
     * @return 结果
     */
    @Override
    public int updatePostLikes(PostLikes postLikes)
    {
        return postLikesMapper.updatePostLikes(postLikes);
    }

    /**
     * 批量删除点赞管理
     * 
     * @param likeIds 需要删除的点赞管理主键
     * @return 结果
     */
    @Override
    public int deletePostLikesByLikeIds(Long[] likeIds)
    {
        return postLikesMapper.deletePostLikesByLikeIds(likeIds);
    }

    /**
     * 删除点赞管理信息
     *
     * @return 结果
     */
    @Override
    public int deletePostLikesByLikeId(@Param("postId") Long postId,@Param("userAccount") Long userAccount)
    {
        return postLikesMapper.deletePostLikesByLikeId(postId,userAccount);
    }
}
